Thorough knowledge of data processing systems is of the utmost importance in a number of resource management applications. A typical example consists of the identification of software products that are installed on a system; typically, this information is used to meter the usage of the software products, such as by a license management application (for example, for charge-back accounting).
For this purpose, inventory tools are exploited to discover the required information. A commercial inventory tool available on the market is the “IBM Tivoli Common Inventory Technology or CIT” by IBM Corporation; in the example at issue, the inventory tool is part of a commercial license management application, such as the “IBM Tivoli License Compliance Manager or ITLCM” by IBM Corporation.
In this scenario, a problem arises when the software products include multiple software components cooperating among them. Generally, these software components may be installed independently; moreover, the same software components may belong to two or more different software products. A typical case is that of utilities that can be used in more complex applications; for example, the inventory tool itself may be exploited—in addition to the above-mentioned license management applications—in software distribution applications, in monitoring applications, and the like.
The inventory tools known in the art can only determine the software components that are installed on the system. However, it is quite difficult (if not impossible) to determine the software product owning each software component. Indeed, once a software component is installed on the system, it generally does not include any information about the corresponding software product (because of either a deliberate design choice or an intrinsic limitation of the software component).
Therefore, if the software component may be shared by multiple software products it is not possible to determine the one among them that actually includes the software component. This may even prevent the identification of software products that are installed on the system.
This problem is particular acute when different conditions of use apply to specific exploitation of the same software component. Indeed, the conditions of use of the software component typically depend on the software product that embeds it; for example, the usage of the software component is generally subjected to licensing fees increasing with the complexity of the environment wherein it is used (while it may be free of charge in specific contexts).
All of the above may impair the correct operation of the inventory tool (and more generally of any application based thereon). Particularly, in the software licensing scenario it is not possible to associate the correct charging rate to the usage of the software components. This involves the risk of having a wrong license management of the system, which may result in inaccurate charge-back.